package com.yuyang.wifi.utils.network;

import android.content.Context;
import android.text.TextUtils;

import java.util.HashMap;
import java.util.Map;


/**
 * rxjava请求数据
 * Created by wislie on 2017/11/22.
 */

public class RxDataInstance {


    //在访问HttpMethods时创建单例
    private static class SingletonHolder {
        private static final RxDataInstance INSTANCE = new RxDataInstance();
    }

    //获取单例
    public static RxDataInstance getInstance() {
        return SingletonHolder.INSTANCE;
    }

    protected Map<String, String> mParamMap = null;

    public RxDataInstance initMap(Context context) {
        mParamMap = new HashMap<String, String>();
        return this;
    }

    //注册设备接口参数
//    public RxDataInstance initMapNoBase(Context context) {
//        mParamMap = new HashMap<String, String>();
//        mParamMap.put("bundleId", DeviceInfoUtils.getPackageName(context));//bundleId包名
//        mParamMap.put("deviceType", "Android");//deviceType设备类型
//        mParamMap.put("language", "zh");//language语言
//        mParamMap.put("deviceId", DeviceInfoUtils.getDeviceId(context));//deviceId设备ID
//        mParamMap.put("resolution", DeviceInfoUtils.getResolution(context));//resolution分辨率
//        mParamMap.put("sysName", android.os.Build.BRAND);//sysName系统名
//        mParamMap.put("sysVersion", android.os.Build.VERSION.SDK);//sysVersion系统版本
//        mParamMap.put("appName", Constants.APPNAME);//appName名称
//        Log.e("mej", "appName名称==" + Constants.APPNAME + "bundleId包名==" + DeviceInfoUtils.getPackageName(context) + "deviceId设备ID==" + DeviceInfoUtils.getDeviceId(context) + "deviceType设备类型==" + "Android" + "language语言==" + "zh" + "resolution分辨率==" + DeviceInfoUtils.getResolution(context) + "sysName系统名==" + android.os.Build.BRAND + "sysVersion系统版本==" + android.os.Build.VERSION.SDK);
//        return this;
//    }
//
//    public String getSign() {
//        // 对参数名进行字典排序
//        String[] keyArray = mParamMap.keySet().toArray(new String[0]);
//        Arrays.sort(keyArray);
//        // 拼接有序的参数名-值串
//        StringBuilder stringBuilder = new StringBuilder();
//        for (String key : keyArray) {
//            stringBuilder.append(key).append("=").append(mParamMap.get(key)).append("&");
//        }
//        String codes = stringBuilder.toString().substring(0, stringBuilder.toString().length() - 1);
//        Log.e("mej", "getSigns:" + codes);
//        String md5Key = DigestUtils.md5Hex(Constants.MD5RKEY).toUpperCase();
//        String encodeString = AesUtils.aesEncode(md5Key, codes);
//        Log.e("mej", "AES加密后的字符串===" + encodeString);
//        return encodeString;
//    }
//
//    //获取秘钥加密过的字符串码
//    public String getSecretSign() {
//        // 对参数名进行字典排序
//        String[] keyArray = mParamMap.keySet().toArray(new String[0]);
//        Arrays.sort(keyArray);
//        // 拼接有序的参数名-值串
//        StringBuilder stringBuilder = new StringBuilder();
//        for (String key : keyArray) {
//            stringBuilder.append(key).append("=").append(mParamMap.get(key)).append("&");
//        }
//        String s = stringBuilder.toString();
//        String codes = stringBuilder.toString().substring(0, stringBuilder.toString().length() - 1);
//        Log.e("mej", "getSigns:" + codes);
//        String secretKey = UserConfig.getInstance(ClientApplication.getApp()).getSecretKey();
//        String encodeString = AesUtils.aesEncode(secretKey, codes);//对字符串进行aes加密
//        Log.e("mej", "AES加密后的字符串===" + encodeString);
//        return encodeString;
//    }

    public Map<String, String> getParamMap() {
        return mParamMap;
    }

    public RxDataInstance put(String key, Object obj) {
        if (obj != null) {
            if (obj instanceof String) {
                if (TextUtils.isEmpty((CharSequence) obj) || obj.equals("null")) {
                    obj = "";
                }
            }
            mParamMap.put(key, String.valueOf(obj));
        } else {
            mParamMap.put(key, "");
        }
        return this;
    }
}
